// 《围棋》作者版权所有。版权所有。
// 此源代码的使用受BSD样式
// 许可证的约束，该许可证可以在许可证文件中找到。

package testlog

import "sync"

// PanicOnExit0报告调用os.Exit（0）时是否惊慌。
// 这在测试日志包中，因为与
// 包测试日志中的其他定义一样，它是测试包和
// os包之间的挂钩。这用于确保对os.Exit（0）
// 的早期调用不会导致测试通过。
func PanicOnExit0() bool {
	panicOnExit0.mu.Lock()
	defer panicOnExit0.mu.Unlock()
	return panicOnExit0.val
}

// panicOnExit0是用于panicOnExit0的标志。这使用了锁
// 因为可以通过计时器调用清除该值，该调用可能与对os的调用竞争
// 退出
var panicOnExit0 struct {
	mu  sync.Mutex
	val bool
}

// SetPanicOnExit0将panicOnExit0设置为v。
func SetPanicOnExit0(v bool) {
	panicOnExit0.mu.Lock()
	defer panicOnExit0.mu.Unlock()
	panicOnExit0.val = v
}
